package com.cs.archivesmanagement.dao;

import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.Restrictions;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * Created by amo on 2015/8/20.
 */
public interface EntityDao {

    /**
     *
     * @param entity 需要单个储存的实体类
     * @return 返回是否成功的布尔值
     */

    Serializable addEntity(Object entity);

    /**
     *
     * @param entity 需要单个更新的实体类
     * @return 返回是否成功的布尔值
     */

    boolean updateEntity(Object entity);

    /**
     *
     * @param entity 需要单个删除的实体类
     * @return 返回是否成功的布尔值
     */

    boolean deleteEntity(Object entity);


    /**
     *
     * @param aclass 装载的实体类型
     * @param entity  映射的实体
     * @return 查到到的实体
     */

    Object getEntity(Class aclass,Object entity);

    /**
     *
     * @param aclass 装载的实体类型 如a.class
     * @param criterionArrayList 约束
     * @return 实体列表
     */

    List getEntityList(Class aclass,ArrayList<Criterion> criterionArrayList);



}
